home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / lists / gem / l_1199 / 824 < prev    next >
Encoding:
Internet Message Format  |  1994-08-27  |  15.9 KB

  1. Date: Sun, 17 Jul 1994 13:10:23 -0400 (EDT)
  2. Date: Sat, 16 Jul 94 02:34 EST
  3. Subject: Gem List (fwd)
  4. Subject: Gem List
  5. Subject:  Re: Buttons Buttons Buttons
  6. Subject:  Re: Buttons Buttons Buttons
  7. Subject:  Re: Online Help
  8. Subject:  Digest
  9. Subject:  RE: Re: Buttons Buttons Buttons
  10. Subject:  Re: RE: Re: Buttons Buttons Buttons
  11. Subject:  Re: Dialogs & Extra Buttons
  12. Date: Sun, 17 Jul 1994 13:10:23 -0400 (EDT)
  13. Mime-Version: 1.0
  14. Precedence: bulk
  15.  
  16. Forwarded message:
  17. >From 0006795560@mcimail.com Sat Jul 16 03:37:08 1994
  18. Date: Sat, 16 Jul 94 02:34 EST
  19. From: "Daniel J. Hollis" <0006795560@mcimail.com>
  20. To: ems <gem-list-approval@world.std.com>
  21. Subject: Gem List
  22. Message-Id: <50940716073405/0006795560PK2EM@mcimail.com>
  23.  
  24. Subject:  Re: Buttons Buttons Buttons
  25.  
  26. Warwick:
  27. -------- 
  28. >Ofir Gal wrote:
  29. >>2. Holding the right button allows clicking in background windows with the
  30. >>   left button, very useful and also the standard behaviour. Works very
  31. >>   well in the desktop and Papyrus is another example where you can move
  32. >>   the cursor around and even select text while in the font selector.
  33. >This is an incredible waste of a button.  It also violates the principle
  34. >of not requiring the user to hold down multiple buttons to perform an
  35. >action.
  36.  
  37. For once we agree. :-) *NO OTHER GUI* requires a right click combo to
  38. get at background window gadgets. It's a waste of time, and it's a stupid
  39. design. It wastes a button that could otherwise be used for something
  40. more useful like a *tool*, rather than *wasting* it on background buttons.
  41.  
  42. >>3. Allow the right button to be used on background windows without topping
  43. >>   them. I personally find this very useful and implemented it in my
  44. >>   toolkit as a user option. It is also used in Datalite and Ease where
  45. >>   you can move/copy/drag files without having to top windows.
  46. >Totally confusing.  All you need to do is allow the user to use the window
  47. >title, or any unused area of the window to top the window.  In an extreme
  48. >case, also allow a meta key, such as Alt-Ctrl to make the left button top
  49. >the window.
  50.  
  51. My philosophy is that there should be *NO DISTINCTION ON BUTTON 
  52. FUNCTIONALITY* whether a window is in the 'background' or 'foreground'. The
  53. *SAME BUTTONS* should work on the *SAME WINDOW* whether it's topped or not.
  54. Changing the mouse buttons required to click a gadget in the *SAME WINDOW*
  55. depending on its level in the window stack gets totally confusing.
  56.  
  57. >I have my WINCOLOURS set up so that the top window is very little different
  58. >to untopped windows (just the title text changes colour).  This infatuation
  59. >GEM has with topping windows is something we should be getting away from,
  60. >not setting in stone standards.
  61.  
  62. Agreed. If the appearance doesn't change, why require a change in mouse
  63. button behaviour?
  64.  
  65. >If you use MultiTOS, you'll soon become tired of topping windows if you
  66. >move back and forth between applications, and if you have a large enough
  67. >screen to have multiple non-overlapping application windows.
  68.  
  69. This is even more apparent in Windows where MDI applications have children
  70. windows in their main window. Under normal Windows if you click on one
  71. of those child processes, you'll bring the whole damned parent application
  72. *AND ALL OF ITS CHILD WINDOWS* to the top. This is totally stupid, especially
  73. if you're trying to do something productive.
  74.  
  75. There is a PD patch program called (interestingly enough) 'WinX' (no, this
  76. is not the same WinX as on the Atari, it is by a different person) for
  77. Microsoft Windows, and it allows you to activate background window gadgets
  78. without having to top them first. This is very very useful, i.e. you've got
  79. a word processor open, and file manager with 3 or 4 child windows. I can keep my
  80. word processor window topped and scroll the background child windows up and
  81. down to reference files for a document I'm writing. If I had to keep topping
  82. and untopping applications, the job would take 10 times longer.
  83.  
  84. WinX also lets you keep the keyboard 'focus' on a certain application if you
  85. like, so you can background a word processor window and still keep typing
  86. into it. Not exactly useful, but.... :-)
  87.  
  88. It also has an option to automatically top windows that the mouse enters,
  89. but I find this 'feature' annoying as hell. Fortunately WinX allows you to
  90. turn this off.
  91.  
  92. It also has a nice feature in that you can mark a window as 'always topped'
  93. so that it can never be obscured. This is nice for programs which don't have
  94. such a feature internally.
  95.  
  96. WinX also lets you 'pull' any window forward one level, or push it back
  97. one level (or all the way to the back), without having to 'top' it first.
  98. This is handy for rearranging the window stack without having to un-top the
  99. application you're currently using.
  100.  
  101. My philosophy is, the functionality of the GUI should not get in the way
  102. of the user, it should make life EASIER for the user, not more difficult.
  103.  
  104. --Dan Hollis
  105. ----------
  106. Subject:  Re: Buttons Buttons Buttons
  107.  
  108. >>This is an incredible waste of a button.  It also violates the principle
  109. >>of not requiring the user to hold down multiple buttons to perform an
  110. >>action.
  111. >I totally disagree, I wouldn't want Papyrus to work in any other way. It
  112. >doesn't violate anything, this is the way the desktop has behave[d] for the
  113. >last 5 years.
  114.  
  115. Just because the desktop does it that way doesn't mean it's the right way.
  116.  
  117. The desktop allocates all of RAM for even a 0 byte file copy, but you would
  118. think this is the right way to do things simply because the desktop does it?
  119.  
  120. MS-DOS is limited to 640k, but this does not mean that Microsoft is correct
  121. in their design. But you would argue that a 640k limit is perfectly
  122. acceptable just because it's been that way for 8 years.
  123.  
  124. >>>3. Allow the right button to be used on background windows without topping
  125. >>Totally confusing.  All you need to do is allow the user to use the window
  126. >>title, or any unused area of the window to top the window.  In an extreme
  127. >>case, also allow a meta key, such as Alt-Ctrl to make the left button top
  128. >>the window.
  129. >Why? And what is an 'unused' part of a window?
  130.  
  131. Actually it should be : 'click' TOPS a window
  132.                         'press' ACTIVATES a window gadget
  133.  
  134. Is this so difficult to understand?
  135.  
  136. >What has mouse button response to do with screen resolutions? All the
  137. >programs I have run happily in 880*656 and still manage to follow this
  138. >standard mouse behaviour.
  139.  
  140. Atari's "standards" are not always the correct ones. Besides the fact
  141. that atari did not 'declare' the mouse button behaviour as a standard --
  142. it is still open to interpretation.
  143.  
  144. --Dan Hollis
  145. ----------
  146. Subject:  Re: Online Help
  147.  
  148. >>Has any discussion gone into a standard for online help on the GEM
  149. >>list yet?
  150.  
  151. IMHO, PureC's help system is acceptable. Programs like CoNnect have
  152. similar help systems, but IMHO CoNnect goes a little overboard :-)
  153.  
  154. >>I remember some mentions of 1st Guide, but that was lost in the tidal wave
  155. >>of keyboard shortcut discussion...
  156. >We have started talking about this. There are several items that need
  157. >further discussion:
  158.  
  159. >Non-modal dialogues
  160.  
  161. Modal dialogs (i.e. do_alert) should be avoided in 99.9999% of cases.
  162. 'modal' dialogs should be modal for only 1 application (i.e. windowed
  163. modal dialog) and should NOT stop task switching for other applications.
  164.  
  165. Only catastrophic errors (i.e. virtual memory manager crashes, etc. :-)
  166. should bring up a system-wide modal dialog (i.e. do_alert). If some program
  167. brings up a 'printer not connected' alert box, your background BBS program
  168. will halt. This is totally unacceptable.
  169.  
  170. >Palette handling
  171.  
  172. Simple. First 16 colors are 'reserved' standard colors that any application
  173. can depend on NOT changing. The remaining colors can be changed by any
  174. application. It would be nice if there were some standard method where
  175. programs could 'allocate' colors they needed, but this is not possible with
  176. the normal VDI.
  177.  
  178. >keyboard shortcuts config file
  179.  
  180. This *DOES* need discussion. It is a very very good idea, IMHO -- let the
  181. users choose whatever damn key equivalents they want. They can customize
  182. the key equivalents to their own local country keyboard.
  183.  
  184. >right mouse button behaviour
  185.  
  186. Should be a non-issue, IMHO. The same mouse buttons should have the exact
  187. same effect on a window whether it's topped or not. Doing otherwise is
  188. totally confusing.
  189.  
  190. >menu layout
  191.  
  192. This definitely needs discussion.
  193.  
  194. --Dan Hollis
  195. ----------
  196. Subject:  Digest
  197.  
  198. Chris:
  199. ------
  200. >> You have to understand how GEM works before you can bring up an argument
  201. >> like this. The fact is that not every application will get a mouse event
  202. >> unless they write their own mouse routine (not everyone is willing to do :-
  203. >But surely your proposal is that everyone will have to to implement your
  204. >standard? It's not a problem now but if you make it mandatory you will have
  205. >all programs doing it, which slows it down.
  206.  
  207. Have you actually TRIED this? Are you ASSUMING it will slow things down, or
  208. are you speaking from experience having tried this? Try first, then comment
  209. later. From experience, the speed difference is so incemantable, that it's
  210. not even funny. ANYONE can LIVE with the speed difference: There is none that
  211. you can see with the naked eye!
  212.  
  213. BTW, having all programs do it, or none do it, is better than some doing
  214. it and some not. I prefer consistency over everything else.
  215.  
  216. >> There is another problem here -- our library allows you to set multiple
  217. >> timer events and 'attach' them to windows. If we set our event_timer to
  218. >> wait for rectangle events, then the timers would become effectively
  219. >> useless. The library does need to do events on a regular basis, but only
  220. >> mouse events will be done if the application is TOPPED.
  221. > What does using mouse rectangle events have to do with whether you receive
  222. > timer events anyway?
  223.  
  224. Nothing. The problem is that we sub-divide out timer events to subroutines
  225. to do internal multitasking. If we were to use a longer timer event than 0,
  226. it would slow down internal multitasking.
  227.  
  228. Since we've got a timer event of 0, waiting for a rectangle event is useless
  229. (and we watch rectangles internally anyways, which is faster...)
  230.  
  231. >> Extended object types can *easily* handle behavioural objects. Just look
  232. >> at WinLIB PRO's active sliders. Those are just normal everyday sliders,
  233. >> with the one addition that their extended object type is different.
  234. >>
  235. >> You're saying that with Gem++ you would have to add code to support the
  236. >> active slider, perhaps doing something like "register_active_slider(TREE,
  237. >> object, orientation);" which is insane. Having to write code to support
  238. >> an interface when the interface should do those things ITSELF is a pain.
  239. > But you need to attach code to the active slider anyway, or any other type of
  240. > object. For example you might have a check-box object which is handled
  241. > automatically, but you still have to specify the code for it, perhaps in a
  242. > switch statement. In GEM++ you just declare that the existing button should be
  243. > a check-box of a particular application specific class, and it changes the
  244. > behaviour and appearance.
  245.  
  246. In WinLIB PRO, you attach a routine to a *button*, but that code doesn't
  247. affect the appearance of the item it's attached to in any way.
  248.  
  249. You are still pointing out the fact that if you want to change the APPEARANCE
  250. without changing the functionality, in Gem++ this is impossible without
  251. a code change and re-compile.
  252.  
  253. Face it, this is a *BIG* disadvantage.
  254.  
  255. >> Besides the fact that if you want to change the functionality of a button,
  256. >> you can't do it visually, you have to do it programatically. This is
  257. >> right along the lines of insanity that MultiTOS did when they forced you to
  258. >> do heirarchical menus by linking them together within your code, rather
  259. >> than the *obvious* way of allowing you to design heirarchical menus using
  260. >> a resource editor.
  261. > You can still edit them in a resource editor. From your code you declare an
  262. > object and this attaches code to them and may optionally change the
  263. > appearance. You cannot do it from a resource editor because there are an
  264. > infinite number of different types of code that may be attached.
  265.  
  266. Sounds like Gem++ is the only library which has this limitation. Every other
  267. library can make these kind of changes in mere seconds, with a resource
  268. editor, no code changes required, no recompiliation required.
  269.  
  270. In the end, Gem++ loses out by making the programmer's life more difficult.
  271.  
  272. > Have you used GEM++? Were there a decent fast c++ compiler for the Atari I
  273. > would use it all the time.
  274.  
  275. Think about what you just said here :-)
  276.  
  277. --Dan Hollis
  278. --------
  279. Subject:  RE: Re: Buttons Buttons Buttons
  280.  
  281. > Does anyone use the hold-right-button-while-click-left on the
  282. > desktop? Well I certainly use it a lot when copying files
  283. > accross and not wanting to swap top windows!
  284.  
  285. Just because Atari's Desktop does it doesn't mean it's right.
  286.  
  287. > IMHO, Holding down the right mouse button is pretty natural. You
  288. > can't (as far as I know) stop a left click from topping a window
  289. > in older TOSes anyway, so you must have hold right and then click left, or 
  290. > simply click right. Since I like the idea that LEFT IS SELECT, I'm not a 
  291. > great fan of using the right mouse button instead.
  292.  
  293. Pardon me a minute... *ahem*...
  294.  
  295. ** BWAHAHAHAHAHAHAHHAHAHAHAHHAHAHAHAHHAHAHAHAHHAA!!!!!!! **
  296.  
  297. Ok: This behavior is possible under *ANY* version of TOS, even all the way
  298. back to 1.0 (we were doing background button clicks, etc. on TOS 1.0 with
  299. WinLIB PRO).
  300.  
  301. When you receive a WM_TOPPED message from AES, YOU top the window yourself,
  302. not AES. AES just sends you the message, AES doesn't top the window for you.
  303. You can choose to ignore the WM_TOPPED message completely, or interpret it
  304. however you like; remember, the topped window's ID is returned in this
  305. message. There's your clue for the day. :P
  306.  
  307. This is the *key* to background buttons, BTW. And it's *VERY* easy to
  308. implement using this method.
  309.  
  310. > The idea of topping a window only if the left-click doesn't hit a button or 
  311. > edit item is quite appealing but surely not available in older TOSes. I 
  312. > think we should avoid having different behavious on different machines.
  313.  
  314. Here's a simpler solution:
  315.  
  316.        'click' anywhere in a window always tops it.
  317.        'press' activates a gadget.
  318.  
  319. Understand now? :-)
  320.  
  321. --Dan Hollis
  322. --------
  323. Subject:  Re: RE: Re: Buttons Buttons Buttons
  324.  
  325. Ofir:
  326. -----
  327. >>IMHO, Holding down the right mouse button is pretty natural. You
  328. >>can't (as far as I know) stop a left click from topping a window
  329. >>in older TOSes anyway, so you must have hold right and then click left, or
  330. >>simply click right. Since I like the idea that LEFT IS SELECT, I'm not a
  331. >>great fan of using the right mouse button instead.
  332. > In my programs the right button behaviour is selectable between the
  333. > desktop hold-right to the right driver method.
  334. > I think that it should be up to the programmer to give the user the option
  335. > of using WF_BEVENT for toolbar windows or whatever.
  336.  
  337. That is a great idea, let the user configure the interface for their
  338. preferences.
  339.  
  340. I think we might implement two operating modes for WinLIB PRO:
  341.  
  342. 'Normal user mode' - buttons operate the correct way (i.e. left click in
  343.                      foreground and background windows), click anywhere
  344.                      in a window to top, press gadgets to activate.
  345.  
  346. 'Moron user mode'  - buttons operate idiotic way (i.e. left click in
  347.                      foreground windows, left+right click in background
  348.                      windows), click only in non-button areas to top a window,
  349.                      click to activate buttons. pressing background buttons
  350.                      is not available.
  351.  
  352. --Dan Hollis
  353. ----------
  354. Subject:  Re: Dialogs & Extra Buttons
  355.  
  356. Annius:
  357. -------
  358. > OK,  let's compare this to everyday life then.  In public buildings,
  359. > what signs are always most clearly recognizable?  You got it,  the
  360. > emergency exits.  
  361. > The fact that there is often confusion between different negative
  362. > actions is enough to justify a special position of Cancel.  OK already
  363. > has the optical advantage of being thicker AND it is activated using
  364. > the Return button.
  365.  
  366. This is a good point:
  367.  
  368. 'Format hard disk : Are you SURE? [[ OK ]] [ Cancel ]'
  369.  
  370. is the wrong way.
  371.  
  372. 'Format hard disk : Are you SURE? [[ Cancel ]] [ OK ]'
  373.  
  374. is more acceptable.
  375.  
  376. --Dan Hollis
  377. --------
  378.  
  379.